package cn.zhfeat.hatch.web.service;


import cn.zhfeat.hatch.dto.sysuser.SysRoleAuthorityDto;
import cn.zhfeat.hatch.dto.sysuser.SysRoleDto;

/**
 * @description: 角色信息相关接口层
 *
 *
 * @author ZhangHao
 * @date 2018年5月21日 下午2:27:26 
 * @version 1.0.0.1
 */
public interface IRoleService {

	/**
	 * @description: 角色列表查询
	 *
	 *
	 * @param param
	 * @return
	 * @author ZhangHao
	 * @date 2018年5月21日 下午2:39:01 
	 * @version 1.0.0.1
	 */
	Object ajaxPageData(String param);

	/**
	 * @description: 角色删除操作
	 *
	 * @param dto
	 * @return
	 * @author ZhangHao
	 * @date 2018年5月21日 下午6:50:08 
	 * @version 1.0.0.1
	 */
	Object delete(SysRoleDto dto);


	/**
	 * @description: 从数据库查询该公司最大客户对应的菜单权限
	 *
	 * @param dto
	 * @return
	 * @author ZhangHao
	 * @date 2018年5月22日 下午3:08:13 
	 * @version 1.0.0.1
	 */
	Object ajaxAuthorityGroupList(SysRoleDto dto);


	/**
	 * @description: 获取公司下的全部的角色用于页面下拉框，无需分页
	 *
	 * @param dto
	 * @return
	 * @author ZhangHao
	 * @date 2018年5月22日 下午6:48:45 
	 * @version 1.0.0.1
	 */
	Object ajaxRoleList(SysRoleDto dto);


	/**
	 * @description: 根据角色id查询角色对应的一组菜单，无需分页
	 *
	 * @return
	 * @author ZhangHao
	 * @date 2018年5月22日 下午9:46:18 
	 * @version 1.0.0.1
	 */
	Object ajaxSelectRoleAuthority(SysRoleAuthorityDto dto);

	/**
	 * @description: 检查角色名称是否重复，规则是否正确
	 *
	 * @param dto
	 * @return
	 * @author ZhangHao
	 * @date 2018年5月23日 下午4:39:11 
	 * @version 1.0.0.1
	 */
	Object ajaxCheckName(SysRoleDto dto);

	/**
	 * @description: 新增角色，角色权限，角色外部应用，角色数据权限操作
	 *
	 * @param dto
	 * @return
	 * @author ZhangHao
	 * @date 2018年5月23日 下午5:33:07 
	 * @version 1.0.0.1
	 */
	Object create(SysRoleDto dto);

	/**
	 * @description: 更新角色，角色权限，角色外部应用，角色数据权限操作
	 *
	 * @param dto
	 * @return
	 * @author ZhangHao
	 * @date 2018年5月23日 下午8:08:19 
	 * @version 1.0.0.1
	 */
	Object update(SysRoleDto dto);

	/**
	 * @description: 从数据库查询全部的菜单权限，为账号开通提供使用
	 *
	 * @param
	 * @author ZhangHao
	 * @date 2018/10/23 13:50
	 * @version 1.0.0.1
	 * @return java.lang.Object
	 */

	Object ajaxAuthorityAll(SysRoleDto dto);
}
